﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Marin.Entities;
using Marin.Service;

namespace Marin.UI
{
    public partial class frmListCategorias : Form
    {
        public ICategoriaService catService;
        public frmListCategorias()
        {
            InitializeComponent();
            catService = new CategoriaService();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarData();
        }
        private void CargarData()
        {
            var criterio = txtCriterio.Text == string.Empty ? null : txtCriterio.Text;
            categoriaBindingSource.DataSource = catService.GetAllFromCategoriasByCriterio(criterio);
        }
        private void btnNuevo_Click(object sender, EventArgs e)
        {
            var frmCategoria = new frmCategorias();
            frmCategoria.AddCategoria();
            frmCategoria.ShowDialog();
            CargarData();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            var _categoria = categoriaBindingSource.Current as Categoria;

            if (_categoria!=null)
            {
                var frmEdit = new frmCategorias();
                frmEdit.categoria = _categoria;
                frmEdit.UpdateCategoria();
                frmEdit.ShowDialog();
            }
            else
            {
                MessageBox.Show("Debe de seleccionar una Categoria");
            }
            CargarData();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            var categoria = categoriaBindingSource.Current as Categoria;

            if (categoria != null)
            {
                var rpt = MessageBox.Show(this,
                    string.Format("¿Desea eliminar la marca: \n {0}?", categoria.Descripcion),
                    "Mensaje",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question);

                if (rpt == DialogResult.Yes)
                {
                    catService.RemoveCategoria(categoria.Id);
                    CargarData();
                }
            }
            else
            {
                MessageBox.Show("Debe de seleccionar una Categoria");
            }
        }

        private void frmListCategorias_Load(object sender, EventArgs e)
        {
            CargarData();
        }

        private void txtCriterio_TextChanged(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }
    }
}
